package com.itheima.health.service;

import com.itheima.health.pojo.Role;
import com.itheima.health.pojo.User;
import com.itheima.health.entity.PageResult;
import com.itheima.health.entity.QueryPageBean;
import com.itheima.health.exception.MyException;
import com.itheima.health.pojo.CheckItem;
import org.apache.ibatis.annotations.Param;

import java.util.List;


public interface UserService {
    /**
     * 通过用户名查询用户角色权限
     * @param username
     * @return
     */
    User findByUsername(String username);


    /**
     * 查询所有
     * @return
     */
    List<User> findAll();

    /**
     * 添加检查项
     * @param user
     */
    void add(User user,Integer[] roles) throws MyException;

    /**
     * 检查项的分页查询
     * @param queryPageBean
     * @return
     */
    PageResult<User> findPage(QueryPageBean queryPageBean);

    /**
     * 通过id查询
     * @param id
     * @return
     */
    User findById(int id);

    /**
     * 修改检查项
     * @param user
     */
    void update(User user,Integer[] roles)throws MyException;

    /**
     * 通过id删除
     * @param id
     */
    void deleteById(int id) throws MyException;

    void resetPassword(@Param("id")Integer id, @Param("encodeId")String encodeId)throws MyException;

    /**
     * 查询角色信息
     * @return
     */
    List<Role> findByMenu();

    /**
     * 查询角色id
     * @param id
     * @return
     */
    List<Integer> findByMenuRole(int id);
}
